package com.grupobbva.seguridad.service.spring;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.grupobbva.seguridad.dao.AdministracionDao;
import com.grupobbva.seguridad.dao.SeguridadDao;
import com.grupobbva.seguridad.domain.Empresa;
import com.grupobbva.seguridad.domain.TablaDetalle;
import com.grupobbva.seguridad.domain.TablaGeneral;
import com.grupobbva.seguridad.domain.TipoOficina;
import com.grupobbva.seguridad.domain.Ubicacion;
import com.grupobbva.seguridad.service.AdministracionService;
import com.grupobbva.seguridad.util.Constante;

// TODO: Auto-generated Javadoc
/**
 * The Class AdministracionServiceImpl.
 */
@Service
public class AdministracionServiceImpl implements AdministracionService {

	/** The administracion dao. */
	@Autowired
	private AdministracionDao administracionDao;
	
	/* (non-Javadoc)
	 * @see com.grupobbva.seguridad.service.AdministracionService#obtenerDetalles(java.lang.Long)
	 */
	public List<TablaDetalle> obtenerDetalles(Long tablaId) throws Exception {
		return administracionDao.obtenerDetalles(tablaId);
	}

	/* (non-Javadoc)
	 * @see com.grupobbva.seguridad.service.AdministracionService#obtenerTablas()
	 */
	public List<TablaGeneral> obtenerTablas() throws Exception {
		return administracionDao.obtenerTablas();
	}

	/* (non-Javadoc)
	 * @see com.grupobbva.seguridad.service.AdministracionService#obtenerListadoEmpresas()
	 * @metodo nuevo creado por WBARDALEZ 18-09-2013
	 */
	@Override
	public List<Empresa> obtenerListadoEmpresas() throws Exception {

		return administracionDao.obtenerListadoEmpresas();
	}

	/* (non-Javadoc)
	 * @see com.grupobbva.seguridad.service.AdministracionService#obtenerListadoficinas()
	 * @metodo nuevo creado por WBARDALEZ 20-09-2013
	 */
	@Override
	public List<TipoOficina> obtenerListadoficinas(Long parameterLong ) throws Exception {
		List<TipoOficina> lstTipoOficinas = new ArrayList<TipoOficina>();
		lstTipoOficinas = administracionDao.obtenerListadoOficinas(parameterLong);
		for (TipoOficina lst : lstTipoOficinas) {
			if (lst.getCodTipoOficina() == null) {
				lst.setCodTipoOficina(Constante.DES_CAMPO_NULL);
			}
		}
		return lstTipoOficinas;
	}

	/* (non-Javadoc)
	 * @see com.grupobbva.seguridad.service.AdministracionService#obtenerListadoUbicacion()
	 * @metodo nuevo creado por WBARDALEZ 20-09-2013
	 */
	@Override
	public List<Ubicacion> obtenerListadoUbicacion(Long parameterLong) throws Exception {
		List<Ubicacion> lstUbicacion = new ArrayList<Ubicacion>();
		lstUbicacion =  administracionDao.obtenerListadoUbicacion(parameterLong);
		for (Ubicacion lst : lstUbicacion) {
			if (lst.getCodUbicacion() == null) {
				lst.setCodUbicacion(Constante.DES_CAMPO_NULL);
			}
		}
		
		return lstUbicacion;
	}

}
